home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1999 January: Mac OS SDK / Dev.CD Jan 99 SDK2.toast / Development Kits / QuickTime / QuickTime 3 Interfaces & Libs / QTDevWin / CIncludes / Terminals.h < prev    next >
Encoding:
C/C++ Source or Header  |  1998-08-21  |  14.4 KB  |  470 lines  |  [TEXT/dosa]

  1. /*
  2.      File:        Terminals.h
  3.  
  4.      Contains:    Communications Toolbox Terminal tool Interfaces.
  5.  
  6.      Version:    Technology:    System 7.5
  7.                  Release:    QuickTime 3.0
  8.  
  9.      Copyright:    © 1988-1998, 1995-1997 by Apple Computer, Inc., all rights reserved
  10.  
  11.      Bugs?:        Please include the the file and version information (from above) with
  12.                  the problem description.  Developers belonging to one of the Apple
  13.                  developer programs can submit bug reports to:
  14.  
  15.                      devsupport@apple.com
  16.  
  17. */
  18. #ifndef __TERMINALS__
  19. #define __TERMINALS__
  20.  
  21. #ifndef __CONDITIONALMACROS__
  22. #include <ConditionalMacros.h>
  23. #endif
  24. #ifndef __DIALOGS__
  25. #include <Dialogs.h>
  26. #endif
  27. #ifndef __CTBUTILITIES__
  28. #include <CTBUtilities.h>
  29. #endif
  30. #ifndef __CONNECTIONS__
  31. #include <Connections.h>
  32. #endif
  33.  
  34.  
  35.  
  36. #if PRAGMA_ONCE
  37. #pragma once
  38. #endif
  39.  
  40. #ifdef __cplusplus
  41. extern "C" {
  42. #endif
  43.  
  44. #if PRAGMA_IMPORT
  45. #pragma import on
  46. #endif
  47.  
  48. #if PRAGMA_STRUCT_ALIGN
  49.     #pragma options align=mac68k
  50. #elif PRAGMA_STRUCT_PACKPUSH
  51.     #pragma pack(push, 2)
  52. #elif PRAGMA_STRUCT_PACK
  53.     #pragma pack(2)
  54. #endif
  55.  
  56.  
  57. enum {
  58.     curTMVersion                = 2                                /* current Terminal Manager version */
  59. };
  60.  
  61.  
  62. enum {
  63.     curTermEnvRecVers            = 0                                /* current Terminal Manager Environment Record version */
  64. };
  65.  
  66.  
  67. enum {
  68.                                                                 /* error codes    */
  69.     tmGenericError                = -1,
  70.     tmNoErr                        = 0,
  71.     tmNotSent                    = 1,
  72.     tmEnvironsChanged            = 2,
  73.     tmNotSupported                = 7,
  74.     tmNoTools                    = 8
  75. };
  76.  
  77. typedef OSErr                             TMErr;
  78.  
  79. enum {
  80.     tmInvisible                    = 1 << 0,
  81.     tmSaveBeforeClear            = 1 << 1,
  82.     tmNoMenus                    = 1 << 2,
  83.     tmAutoScroll                = 1 << 3,
  84.     tmConfigChanged                = 1 << 4
  85. };
  86.  
  87. typedef unsigned long                     TMFlags;
  88.  
  89. enum {
  90.     selTextNormal                = 1 << 0,
  91.     selTextBoxed                = 1 << 1,
  92.     selGraphicsMarquee            = 1 << 2,
  93.     selGraphicsLasso            = 1 << 3,
  94.     tmSearchNoDiacrit            = 1 << 8,
  95.     tmSearchNoCase                = 1 << 9
  96. };
  97.  
  98. typedef unsigned short                     TMSearchTypes;
  99. typedef short                             TMSelTypes;
  100.  
  101. enum {
  102.     cursorText                    = 1,
  103.     cursorGraphics                = 2
  104. };
  105.  
  106. typedef unsigned short                     TMCursorTypes;
  107.  
  108. enum {
  109.     tmTextTerminal                = 1 << 0,
  110.     tmGraphicsTerminal            = 1 << 1
  111. };
  112.  
  113. typedef unsigned short                     TMTermTypes;
  114.  
  115. struct TermDataBlock {
  116.     TMTermTypes                     flags;
  117.     Handle                             theData;
  118.     Handle                             auxData;
  119.     long                             reserved;
  120. };
  121. typedef struct TermDataBlock            TermDataBlock;
  122. typedef TermDataBlock *                    TermDataBlockPtr;
  123. typedef TermDataBlockPtr *                TermDataBlockH;
  124. typedef TermDataBlockPtr *                TermDataBlockHandle;
  125.  
  126. struct TermEnvironRec {
  127.     short                             version;
  128.     TMTermTypes                     termType;
  129.     short                             textRows;
  130.     short                             textCols;
  131.     Point                             cellSize;
  132.     Rect                             graphicSize;
  133.     Point                             slop;
  134.     Rect                             auxSpace;
  135. };
  136. typedef struct TermEnvironRec            TermEnvironRec;
  137.  
  138. typedef TermEnvironRec *                TermEnvironPtr;
  139.  
  140. union TMSelection {
  141.     Rect                             selRect;
  142.     RgnHandle                         selRgnHandle;
  143. };
  144. typedef union TMSelection                TMSelection;
  145. typedef struct TermRecord                 TermRecord;
  146.  
  147. typedef TermRecord *                    TermPtr;
  148. typedef TermPtr *                        TermHandle;
  149. typedef CALLBACK_API( long , TerminalSendProcPtr )(Ptr thePtr, long theSize, long refCon, CMFlags flags);
  150. typedef CALLBACK_API( void , TerminalBreakProcPtr )(long duration, long refCon);
  151. typedef CALLBACK_API( long , TerminalCacheProcPtr )(long refCon, TermDataBlockPtr theTermData);
  152. typedef CALLBACK_API( void , TerminalSearchCallBackProcPtr )(TermHandle hTerm, short refNum, Rect *foundRect);
  153. typedef CALLBACK_API( Boolean , TerminalClikLoopProcPtr )(long refCon);
  154. typedef CALLBACK_API( CMErr , TerminalEnvironsProcPtr )(long refCon, ConnEnvironRec *theEnvirons);
  155. typedef CALLBACK_API( void , TerminalChooseIdleProcPtr )(void );
  156. typedef CALLBACK_API( long , TerminalToolDefProcPtr )(TermHandle hTerm, short msg, long p1, long p2, long p3);
  157. typedef STACK_UPP_TYPE(TerminalSendProcPtr)                     TerminalSendUPP;
  158. typedef STACK_UPP_TYPE(TerminalBreakProcPtr)                     TerminalBreakUPP;
  159. typedef STACK_UPP_TYPE(TerminalCacheProcPtr)                     TerminalCacheUPP;
  160. typedef STACK_UPP_TYPE(TerminalSearchCallBackProcPtr)             TerminalSearchCallBackUPP;
  161. typedef STACK_UPP_TYPE(TerminalClikLoopProcPtr)                 TerminalClikLoopUPP;
  162. typedef STACK_UPP_TYPE(TerminalEnvironsProcPtr)                 TerminalEnvironsUPP;
  163. typedef STACK_UPP_TYPE(TerminalChooseIdleProcPtr)                 TerminalChooseIdleUPP;
  164. typedef STACK_UPP_TYPE(TerminalToolDefProcPtr)                     TerminalToolDefUPP;
  165. /*    TMTermTypes     */
  166.  
  167. struct TermRecord {
  168.     short                             procID;
  169.     TMFlags                         flags;
  170.     TMErr                             errCode;
  171.     long                             refCon;
  172.     long                             userData;
  173.     TerminalToolDefUPP                 defProc;
  174.     Ptr                             config;
  175.     Ptr                             oldConfig;
  176.     TerminalEnvironsUPP             environsProc;
  177.     long                             reserved1;
  178.     long                             reserved2;
  179.     Ptr                             tmPrivate;
  180.     TerminalSendUPP                 sendProc;
  181.     TerminalBreakUPP                 breakProc;
  182.     TerminalCacheUPP                 cacheProc;
  183.     TerminalClikLoopUPP             clikLoop;
  184.     WindowPtr                         owner;
  185.     Rect                             termRect;
  186.     Rect                             viewRect;
  187.     Rect                             visRect;
  188.     long                             lastIdle;
  189.     TMSelection                     selection;
  190.     TMSelTypes                         selType;
  191.     long                             mluField;
  192. };
  193.  
  194. enum { uppTerminalSendProcInfo = 0x00002FF0 };                     /* pascal 4_bytes Func(4_bytes, 4_bytes, 4_bytes, 2_bytes) */
  195. enum { uppTerminalBreakProcInfo = 0x000003C0 };                 /* pascal no_return_value Func(4_bytes, 4_bytes) */
  196. enum { uppTerminalCacheProcInfo = 0x000003F0 };                 /* pascal 4_bytes Func(4_bytes, 4_bytes) */
  197. enum { uppTerminalSearchCallBackProcInfo = 0x00000EC0 };         /* pascal no_return_value Func(4_bytes, 2_bytes, 4_bytes) */
  198. enum { uppTerminalClikLoopProcInfo = 0x000000D0 };                 /* pascal 1_byte Func(4_bytes) */
  199. enum { uppTerminalEnvironsProcInfo = 0x000003E0 };                 /* pascal 2_bytes Func(4_bytes, 4_bytes) */
  200. enum { uppTerminalChooseIdleProcInfo = 0x00000000 };             /* pascal no_return_value Func() */
  201. enum { uppTerminalToolDefProcInfo = 0x0000FEF0 };                 /* pascal 4_bytes Func(4_bytes, 2_bytes, 4_bytes, 4_bytes, 4_bytes) */
  202. #define NewTerminalSendProc(userRoutine)                         (TerminalSendUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppTerminalSendProcInfo, GetCurrentArchitecture())
  203. #define NewTerminalBreakProc(userRoutine)                         (TerminalBreakUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppTerminalBreakProcInfo, GetCurrentArchitecture())
  204. #define NewTerminalCacheProc(userRoutine)                         (TerminalCacheUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppTerminalCacheProcInfo, GetCurrentArchitecture())
  205. #define NewTerminalSearchCallBackProc(userRoutine)                 (TerminalSearchCallBackUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppTerminalSearchCallBackProcInfo, GetCurrentArchitecture())
  206. #define NewTerminalClikLoopProc(userRoutine)                     (TerminalClikLoopUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppTerminalClikLoopProcInfo, GetCurrentArchitecture())
  207. #define NewTerminalEnvironsProc(userRoutine)                     (TerminalEnvironsUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppTerminalEnvironsProcInfo, GetCurrentArchitecture())
  208. #define NewTerminalChooseIdleProc(userRoutine)                     (TerminalChooseIdleUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppTerminalChooseIdleProcInfo, GetCurrentArchitecture())
  209. #define NewTerminalToolDefProc(userRoutine)                     (TerminalToolDefUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppTerminalToolDefProcInfo, GetCurrentArchitecture())
  210. #define CallTerminalSendProc(userRoutine, thePtr, theSize, refCon, flags)  CALL_FOUR_PARAMETER_UPP((userRoutine), uppTerminalSendProcInfo, (thePtr), (theSize), (refCon), (flags))
  211. #define CallTerminalBreakProc(userRoutine, duration, refCon)     CALL_TWO_PARAMETER_UPP((userRoutine), uppTerminalBreakProcInfo, (duration), (refCon))
  212. #define CallTerminalCacheProc(userRoutine, refCon, theTermData)  CALL_TWO_PARAMETER_UPP((userRoutine), uppTerminalCacheProcInfo, (refCon), (theTermData))
  213. #define CallTerminalSearchCallBackProc(userRoutine, hTerm, refNum, foundRect)  CALL_THREE_PARAMETER_UPP((userRoutine), uppTerminalSearchCallBackProcInfo, (hTerm), (refNum), (foundRect))
  214. #define CallTerminalClikLoopProc(userRoutine, refCon)             CALL_ONE_PARAMETER_UPP((userRoutine), uppTerminalClikLoopProcInfo, (refCon))
  215. #define CallTerminalEnvironsProc(userRoutine, refCon, theEnvirons)  CALL_TWO_PARAMETER_UPP((userRoutine), uppTerminalEnvironsProcInfo, (refCon), (theEnvirons))
  216. #define CallTerminalChooseIdleProc(userRoutine)                 CALL_ZERO_PARAMETER_UPP((userRoutine), uppTerminalChooseIdleProcInfo)
  217. #define CallTerminalToolDefProc(userRoutine, hTerm, msg, p1, p2, p3)  CALL_FIVE_PARAMETER_UPP((userRoutine), uppTerminalToolDefProcInfo, (hTerm), (msg), (p1), (p2), (p3))
  218.  
  219. EXTERN_API( TMErr )
  220. InitTM                            (void);
  221.  
  222. EXTERN_API( Handle )
  223. TMGetVersion                    (TermHandle             hTerm);
  224.  
  225. EXTERN_API( short )
  226. TMGetTMVersion                    (void);
  227.  
  228. EXTERN_API( TermHandle )
  229. TMNew                            (const Rect *            termRect,
  230.                                  const Rect *            viewRect,
  231.                                  TMFlags                 flags,
  232.                                  short                     procID,
  233.                                  WindowPtr                 owner,
  234.                                  TerminalSendUPP         sendProc,
  235.                                  TerminalCacheUPP         cacheProc,
  236.                                  TerminalBreakUPP         breakProc,
  237.                                  TerminalClikLoopUPP     clikLoop,
  238.                                  TerminalEnvironsUPP     environsProc,
  239.                                  long                     refCon,
  240.                                  long                     userData);
  241.  
  242. EXTERN_API( void )
  243. TMDispose                        (TermHandle             hTerm);
  244.  
  245. EXTERN_API( void )
  246. TMKey                            (TermHandle             hTerm,
  247.                                  const EventRecord *    theEvent);
  248.  
  249. EXTERN_API( void )
  250. TMUpdate                        (TermHandle             hTerm,
  251.                                  RgnHandle                 visRgn);
  252.  
  253. EXTERN_API( void )
  254. TMPaint                            (TermHandle             hTerm,
  255.                                  const TermDataBlock *    theTermData,
  256.                                  const Rect *            theRect);
  257.  
  258. EXTERN_API( void )
  259. TMActivate                        (TermHandle             hTerm,
  260.                                  Boolean                 activate);
  261.  
  262. EXTERN_API( void )
  263. TMResume                        (TermHandle             hTerm,
  264.                                  Boolean                 resume);
  265.  
  266. EXTERN_API( void )
  267. TMClick                            (TermHandle             hTerm,
  268.                                  const EventRecord *    theEvent);
  269.  
  270. EXTERN_API( void )
  271. TMIdle                            (TermHandle             hTerm);
  272.  
  273. EXTERN_API( long )
  274. TMStream                        (TermHandle             hTerm,
  275.                                  void *                    theBuffer,
  276.                                  long                     theLength,
  277.                                  CMFlags                 flags);
  278.  
  279. EXTERN_API( Boolean )
  280. TMMenu                            (TermHandle             hTerm,
  281.                                  short                     menuID,
  282.                                  short                     item);
  283.  
  284. EXTERN_API( void )
  285. TMReset                            (TermHandle             hTerm);
  286.  
  287. EXTERN_API( void )
  288. TMClear                            (TermHandle             hTerm);
  289.  
  290. EXTERN_API( void )
  291. TMResize                        (TermHandle             hTerm,
  292.                                  const Rect *            newViewRect);
  293.  
  294. EXTERN_API( long )
  295. TMGetSelect                        (TermHandle             hTerm,
  296.                                  Handle                 theData,
  297.                                  ResType *                theType);
  298.  
  299. EXTERN_API( void )
  300. TMGetLine                        (TermHandle             hTerm,
  301.                                  short                     lineNo,
  302.                                  TermDataBlock *        theTermData);
  303.  
  304. EXTERN_API( void )
  305. TMSetSelection                    (TermHandle             hTerm,
  306.                                  const TMSelection *    theSelection,
  307.                                  TMSelTypes             selType);
  308.  
  309. EXTERN_API( void )
  310. TMScroll                        (TermHandle             hTerm,
  311.                                  short                     dh,
  312.                                  short                     dv);
  313.  
  314. EXTERN_API( Boolean )
  315. TMValidate                        (TermHandle             hTerm);
  316.  
  317. EXTERN_API( void )
  318. TMDefault                        (Ptr *                    theConfig,
  319.                                  short                     procID,
  320.                                  Boolean                 allocate);
  321.  
  322. EXTERN_API( Handle )
  323. TMSetupPreflight                (short                     procID,
  324.                                  long *                    magicCookie);
  325.  
  326. EXTERN_API( void )
  327. TMSetupSetup                    (short                     procID,
  328.                                  const void *            theConfig,
  329.                                  short                     count,
  330.                                  DialogPtr                 theDialog,
  331.                                  long *                    magicCookie);
  332.  
  333. EXTERN_API( Boolean )
  334. TMSetupFilter                    (short                     procID,
  335.                                  const void *            theConfig,
  336.                                  short                     count,
  337.                                  DialogPtr                 theDialog,
  338.                                  EventRecord *            theEvent,
  339.                                  short *                theItem,
  340.                                  long *                    magicCookie);
  341.  
  342. EXTERN_API( void )
  343. TMSetupItem                        (short                     procID,
  344.                                  const void *            theConfig,
  345.                                  short                     count,
  346.                                  DialogPtr                 theDialog,
  347.                                  short *                theItem,
  348.                                  long *                    magicCookie);
  349.  
  350. EXTERN_API( void )
  351. TMSetupXCleanup                    (short                     procID,
  352.                                  const void *            theConfig,
  353.                                  short                     count,
  354.                                  DialogPtr                 theDialog,
  355.                                  Boolean                 OKed,
  356.                                  long *                    magicCookie);
  357.  
  358. EXTERN_API( void )
  359. TMSetupPostflight                (short                     procID);
  360.  
  361. EXTERN_API( Ptr )
  362. TMGetConfig                        (TermHandle             hTerm);
  363.  
  364. EXTERN_API( short )
  365. TMSetConfig                        (TermHandle             hTerm,
  366.                                  const void *            thePtr);
  367.  
  368. EXTERN_API( OSErr )
  369. TMIntlToEnglish                    (TermHandle             hTerm,
  370.                                  const void *            inputPtr,
  371.                                  Ptr *                    outputPtr,
  372.                                  short                     language);
  373.  
  374. EXTERN_API( OSErr )
  375. TMEnglishToIntl                    (TermHandle             hTerm,
  376.                                  const void *            inputPtr,
  377.                                  Ptr *                    outputPtr,
  378.                                  short                     language);
  379.  
  380. EXTERN_API( void )
  381. TMGetToolName                    (short                     id,
  382.                                  Str255                 name);
  383.  
  384. EXTERN_API( short )
  385. TMGetProcID                        (ConstStr255Param         name);
  386.  
  387. EXTERN_API( void )
  388. TMSetRefCon                        (TermHandle             hTerm,
  389.                                  long                     refCon);
  390.  
  391. EXTERN_API( long )
  392. TMGetRefCon                        (TermHandle             hTerm);
  393.  
  394. EXTERN_API( void )
  395. TMSetUserData                    (TermHandle             hTerm,
  396.                                  long                     userData);
  397.  
  398. EXTERN_API( long )
  399. TMGetUserData                    (TermHandle             hTerm);
  400.  
  401. EXTERN_API( short )
  402. TMAddSearch                        (TermHandle             hTerm,
  403.                                  ConstStr255Param         theString,
  404.                                  const Rect *            where,
  405.                                  TMSearchTypes             searchType,
  406.                                  TerminalSearchCallBackUPP  callBack);
  407.  
  408. EXTERN_API( void )
  409. TMRemoveSearch                    (TermHandle             hTerm,
  410.                                  short                     refnum);
  411.  
  412. EXTERN_API( void )
  413. TMClearSearch                    (TermHandle             hTerm);
  414.  
  415. EXTERN_API( Point )
  416. TMGetCursor                        (TermHandle             hTerm,
  417.                                  TMCursorTypes             cursType);
  418.  
  419. EXTERN_API( TMErr )
  420. TMGetTermEnvirons                (TermHandle             hTerm,
  421.                                  TermEnvironRec *        theEnvirons);
  422.  
  423. EXTERN_API( short )
  424. TMChoose                        (TermHandle *            hTerm,
  425.                                  Point                     where,
  426.                                  TerminalChooseIdleUPP     idleProc);
  427.  
  428. EXTERN_API( void )
  429. TMEvent                            (TermHandle             hTerm,
  430.                                  const EventRecord *    theEvent);
  431.  
  432. EXTERN_API( Boolean )
  433. TMDoTermKey                        (TermHandle             hTerm,
  434.                                  ConstStr255Param         theKey);
  435.  
  436. EXTERN_API( short )
  437. TMCountTermKeys                    (TermHandle             hTerm);
  438.  
  439. EXTERN_API( void )
  440. TMGetIndTermKey                    (TermHandle             hTerm,
  441.                                  short                     id,
  442.                                  Str255                 theKey);
  443.  
  444. EXTERN_API( void )
  445. TMGetErrorString                (TermHandle             hTerm,
  446.                                  short                     id,
  447.                                  Str255                 errMsg);
  448.  
  449.  
  450. #if PRAGMA_STRUCT_ALIGN
  451.     #pragma options align=reset
  452. #elif PRAGMA_STRUCT_PACKPUSH
  453.     #pragma pack(pop)
  454. #elif PRAGMA_STRUCT_PACK
  455.     #pragma pack()
  456. #endif
  457.  
  458. #ifdef PRAGMA_IMPORT_OFF
  459. #pragma import off
  460. #elif PRAGMA_IMPORT
  461. #pragma import reset
  462. #endif
  463.  
  464. #ifdef __cplusplus
  465. }
  466. #endif
  467.  
  468. #endif /* __TERMINALS__ */
  469.  
  470.